package com.lyf.boot.modules.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lyf.boot.base.system.entity.SysUser;
import com.lyf.boot.core.model.IdDto;
import com.lyf.boot.core.model.PageInfo;
import com.lyf.boot.modules.system.entity.dto.CheckSysUserDto;
import com.lyf.boot.modules.system.entity.dto.SysUserDto;
import com.lyf.boot.modules.system.entity.dto.SysUserPageDto;
import com.lyf.boot.modules.system.entity.vo.SysUserVo;

import java.util.List;

/**
 * @author Luyufan
 * @date 2023/7/5 18:52
 */
public interface ISysUserService extends IService<SysUser> {

    /**
     * 分页查询用户
     * @author Luyufan
     * @date 2023/8/14 10:10
     * @param dto
     * @return PageInfo<SysUserVo>
     */
    PageInfo<SysUserVo> getSysUserPage(SysUserPageDto dto);

    /**
     * 查询用户详情
     * @author Luyufan
     * @date 2023/8/14 10:10
     * @param userId
     * @return SysUserVo
     */
    SysUserVo getSysUserInfo(Long userId);

    /**
     * 新建系统用户
     * @author Luyufan
     * @date 2023/8/14 10:25
     * @param dto
     * @return void
     */
    void saveSysUser(SysUserDto dto);

    /**
     * 修改系统用户
     * @author Luyufan
     * @date 2023/8/14 10:26
     * @param dto
     * @return void
     */
    void updateSysUser(SysUserDto dto);

    /**
     * 删除用户
     * @author Luyufan
     * @date 2023/8/14 10:27
     * @param ids
     * @return void
     */
    void deleteSysUser(List<Long> ids);

    /**
     * 重置密码
     * @author Luyufan
     * @date 2023/8/14 11:45
     * @param dto
     * @return void
     */
    void resetPassword(IdDto dto);

    /**
     * 验证用户是否存在
     * @author Luyufan
     * @date 2023/8/14 14:45
     * @param dto
     * @return Boolean
     */
    Boolean checkSysUserExist(CheckSysUserDto dto);
}
